package com.hjm.project.channel.payment.domain;

import com.hjm.framework.aspectj.lang.annotation.Excel;
import com.hjm.framework.web.domain.BaseEntity;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;

/**
 * 渠道代理商提现对象 channel_payment
 *
 * @author maker-platform
 * @date 2025-03-21
 */
@Data
public class ChannelPayment extends BaseEntity {
    private static final long serialVersionUID = 1L;
    private Long id;
    /**
     * 交易状态
     */
    @Excel(name = "交易状态")
    private Integer status;

    /**
     * 业务流水号
     */
    @Excel(name = "业务流水号")
    private String businessNo;

    /**
     * 固定提现费
     */
    @Excel(name = "固定提现费")
    private Integer fixFeeFlag;


    /**
     * 提现代理商
     */
    @Excel(name = "提现代理商")
    private String applyAgentId;

    /**
     * 账号类型
     */
    @Excel(name = "账号类型")
    private String bankAccountType;

    /**
     * 账户类型
     */
    @Excel(name = "账户类型")
    private String accountType;

    /**
     * 提现金额
     */
    @Excel(name = "提现金额")
    private String applyAmount;

    /**
     * 直属代理商
     */
    @Excel(name = "直属代理商")
    private String agentId;

    /**
     * 扣税模式
     */
    @Excel(name = "扣税模式")
    private String invoiceType;

    @Excel(name = "添加时间")
    private Date createtime;
    private Date updatetime;

    private String transferMode;//代付转账场景
    private String operationType;//代付操作类型 1代理商提现 2代付转账
    private String dstAgentId;//代付目标代理商

    private String baseInfo;

    private String agentName;
    private String channelCode;
    private String walletType;


    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("updatetime", getUpdateTime())
                .append("remark", getRemark())
                .append("status", getStatus())
                .append("createtime", getCreatetime())
                .append("businessNo", getBusinessNo())
                .append("fixFeeFlag", getFixFeeFlag())
                .append("id", getId())
                .append("applyAgentId", getApplyAgentId())
                .append("bankAccountType", getBankAccountType())
                .append("accountType", getAccountType())
                .append("applyAmount", getApplyAmount())
                .append("agentId", getAgentId())
                .append("invoiceType", getInvoiceType())
                .toString();
    }
}
